Through the use of the Internet, individuals have access to millions of pages of information. However a significant drawback with using the Internet is that because there is so little organization to the Internet, at times it can be extremely difficult for users to locate the particular “web pages” that contain the information that is of interest to them.
To address this problem, “search engines” index a large number of web pages and provide an interface that can be used to search the indexed information by entering certain words or phases to be queried. Indexes are conceptually similar to the normal indexes that are typically found at the end of a book, in that both kinds of indexes comprise an ordered list of information accompanied with the location of the information.
Although there are many popular Internet search engines, they are generally constructed using the same three common parts. First, each search engine has at least one “spider” that “crawls” across the Internet to locate web pages around the world. Upon locating a web page, the spider stores the web page's Uniform Resource Locator (URL), and follows any hyperlinks associated with the web page to locate other web pages. Second, each search engine contains an indexing mechanism that indexes certain information about the web pages that were located by the spider. The indexing mechanism stores the index information in large databases that can typically hold an enormous amount of information. Third, each search engine provides a search tool that allows users to search the databases in order to locate specific web pages that contain information that is of interest to them.
The search engine provides an interface that allows users to specify their search criteria and, after performing a search, an interface for displaying the search results. Typically, the search engine orders the search results prior to presenting the search results interface to the user. The order usually takes the form of a “ranking”, where the web page with the highest ranking is the web page considered most likely to satisfy the interest reflected in the search criteria specified by the user. The specific techniques for determining that ranking will vary from implementation to implementation.
Once the matching web pages have been determined, and the display order of those web pages has been determined, the search engine sends to the user that issued the search a “search results page” that presents information about the matching web pages in the selected display order. Significantly, the search results page does not present to users the matching web pages themselves, but merely data that identifies the matching web pages. Typically, the number of web pages that match a search is so large that the user is presented with a search results page that only displays information about the top N ranking web pages, where N may be significantly smaller than the total number of matching web pages. The search results page typically includes a control that allows the user to retrieve information about the “next N” matching documents, in the event the first N matching web pages do not entirely satisfy the user's interest.
Attempting to augment the search experience that a search engine can provide requires significant development skill and substantial resources, which can provide barriers. For example, a small company that has a web site might want to add some search capability to their web site. Ideally, the search would involve the proprietary content of the company (e.g., inventory data), as well as content not owned by the company (e.g., web content). However, the while the small company has relevant proprietary content and domain expertise for a particular topic, the small company does not have the capability to build the search experience. Moreover, the small company would prefer not to incur the cost of hiring a consultant to build the search experience.